GoodBattery 1.1 — open-source helper sources and licenses

This archive supplies the unmodified upstream release sources for the GPL/LGPL
helper components used by GoodBattery, with their licenses, preserved Homebrew
recipes and available bottle metadata. It includes the selection/relocation,
verification, fetch and rebuild scripts used to prepare the helper runtime.
GoodBattery's original Swift application source is not part of this archive.

INCLUDED RELEASE SOURCES
libimobiledevice 1.4.0 — Homebrew revision 2
libplist 2.8.0
libimobiledevice-glue 1.3.3
libusbmuxd 2.1.1 — Homebrew revision 1
libtatsu 1.0.5 — Homebrew revision 1; build dependency, no shipped dylib
libtasn1 4.21.0 — build dependency, no shipped dylib

OPENSSL DEPENDENCY: SOURCE DOWNLOADED SEPARATELY
GoodBattery also bundles libssl.4.dylib and libcrypto.4.dylib from OpenSSL 4.1.0.
OpenSSL's license is included here. Its complete source archive is external:
https://github.com/openssl/openssl/releases/download/openssl-4.1.0/openssl-4.1.0.tar.gz
SHA256: 50c17baf54cb008f6ce42d50deb4b28050a1aad711636cabd4b241c7e90cc2fd
It is 55,738,000 bytes. Run python3 fetch-sources.py to obtain and checksum-verify
that exact release before rebuilding. This helper archive does not contain all
source dependencies until that separate OpenSSL archive has been downloaded.

VERIFYING
Run shasum -a 256 -c INCLUDED-SOURCE-CHECKSUMS.txt to check the six included
release archives. SOURCE-PROVENANCE.json records each exact upstream URL and
checksum, plus source_included flags and historical bottle versions/digests.
All included sources match the hashes in the archived Homebrew formulae.
libtasn1 was obtained through mirrors.kernel.org after the GNU primary endpoint
failed; the source archive matches the pinned checksum.
Run python3 fetch-sources.py to obtain the pinned OpenSSL source, followed by
python3 verify-sources.py to verify all seven source dependencies.

REBUILDING WITHOUT EDITING YOUR INSTALLED APP
Requirements: Apple silicon Mac; macOS 27 SDK / Xcode Command Line Tools;
Python 3, clang, make, Perl and pkg-config. Release archives include configure
scripts. The Homebrew formulae preserve the exact original configuration flags;
no upstream source patches are declared in these recipes.
After fetching OpenSSL, run bash rebuild-upstream.sh. It builds into a new
/tmp/goodbattery-upstream.* directory and prepares Runtime-Rebuilt there.
Set GOODBATTERY_BUILD_ROOT to an absolute path without spaces to choose another
build location. It does not modify the installed GoodBattery app, pairing data,
Homebrew installation or system services. Review the output before using it.
To use a replacement runtime in your own app build, copy its bin/ and lib/ into
Contents/Resources/Runtime, retain the notices and sign the containing app.
Changing an installed app's libraries invalidates its signature until signed
again; preserve a recoverable copy before making such a change.

RUNTIME ASSEMBLY AND LIMITATIONS
The original runtime contains idevice_id, ideviceinfo, idevicepair and the six
dynamically linked libraries listed in RUNTIME-LINKAGE.txt. Upstream sources
were not edited: the local binary changes are load-path relocation and ad-hoc
signatures. bundle-runtime.py supplies this selection and relocation procedure.
Libraries remain separate files; helpers execute separately from the Swift app.
RUNTIME-CHECKSUMS.txt identifies the exact delivered runtime, with paths relative
to a sibling Runtime directory (the app stores it in Contents/Resources/Runtime).
HOME BREW BUILD DETAILS.txt records recipe flags and the upstream build roles.
Full source recompilation was not performed while preparing this package; source
checksums, archive integrity, scripts' syntax and the relocation procedure were
verified. Rebuilt binaries are not claimed byte-for-byte identical to Homebrew
bottles because compiler, SDK and environment choices can change the output.
Third-party components retain their upstream licenses and notices. Consult the
individual source and license files for their terms.
